1. Field of the Invention
This invention relates to an information input device and method that scans in character and graphical-based information contained in printed form and converts this information into computer-readable image data or character codes.
2. Description of the Related Art
The microcomputer revolution of the past decade has brought about universal access to processing power and computing options once reserved exclusively for expensive mainframe architectures. And, as personal computer development advances at an ever increasing pace, so too does the variety and adaptation of their use in the marketplace. This has spurred a rapid introduction of intelligent, microcontroller-driven consumer products mentioned only in science fiction novels just a few years before.
One of the most active trends in contemporary computing has been in the field of document processing, and more particularly, converting printed information into electronic form. Peripheral devices known as "handheld scanners" have been developed to automate this conversion process. A conventional handheld scanner reads optical images by touching the roller installed on its tip to images such as characters and rolling over them. The optical signal obtained is converted to an electrical signal through photoelectrical conversion, and is then processed by an image processor in order to provide computer-readable character codes or image data. In this roller-type scanner, distance is calculated based on the rotation of the roller. For example, 16 pieces of image data may be read for every 1 mm of movement, and the obtained image data are then processed by an image processing means. Consequently, the roller must be firmly contacting the image while it is moved. If this condition is met, it becomes possible to read ideal image data regardless of the movement speed (hereinafter referred to as "scanning speed").
However, as explained above, it is not always easy for the operator to maintain firm contact with the image while moving the roller; in some cases the roller might be moved while it is not in contact with the image. Since the roller does not rotate if it is not in contact with the image while being moved, distance cannot be determined. Consequently, an accurate image that corresponds to the scanning speed cannot be read. Furthermore, this type of image input means requires an encoder unit that outputs a pulse signal that matches the distance moved based on the roller movement or roller rotation, thus increasing the overall frame size of the apparatus. For example, for small-size scanners such as pen-type scanners, the area that actually reads images is only around 10 mm wide. However, the area that contacts the manuscript ends up being at least 30 mm wide because of the encoder. Additionally, frequent use of the scanner may cause wear or damage in the moving area (roller area), rendering the scanner unfit for long-term use.
Accordingly, a handheld scanner shown in prior art FIG. 15 has been developed to remedy the problems inherent in roller-type handheld scanners. As shown in this figure, this scanner possesses two line sensors 1011 and 1012 utilized as one-dimensional image sensors (hereafter referred to as "the first sensor 1011"0 and "the second sensor 1012"). It also possesses two light passage holes 1117 and 1118 which are spaced a specified distance apart. The light from LED11010 passes through the two light passage holes 1117 and 1118 and illuminates the characters, etc. on the page being scanned. The reflected light is intercepted by the first sensor 1011 and the second sensor 1012 via optical system 1013.
Image processing by the scanner illustrated in prior art FIG. 15 will be described in more detail in reference to prior art FIG. 16. Prior art FIG. 16 is a block diagram of the configurations of the image input area and the image processing area, and is used for explaining image data processing. As such, the figure shows only those configuration elements that are necessary for explaining image data processing. In FIG. 16, 20 is a scanner (image input unit); the first sensor 1011 and the second sensor 1012 read characters in different positions based on the timing signals issued by read timing signal generation circuit 21, and temporarily stores the data in buffer 22.
On the right side of FIG. 16, image processing unit 30 comprises buffer 31, speed detection unit 32, and image correction unit 33. This speed detection unit 32 comprises the first attribute extraction unit 321, the second attribute extraction unit 322, attribute buffer 323, attribute comparison unit 324, and speed determination unit 325. This image processing unit 30 is typically installed inside an information processing device, such as a personal computer (not shown). Note that buffer 31 installed inside this image processing unit 30 is extremely large, allowing it to store all the image data that will be sent from image input unit 20 during a scan operation.
In this configuration, the first sensor 1011 and the second sensor 1012 in image input unit 20 read characters in different positions based on the timing signals issued by read timing signal generation circuit 21. The image data that is read is first temporarily stored in the buffer 22, and is then sent to image processing unit 30 and stored in buffer 31. In this way, while image input unit 20 is scanning data, all of the image data read by the first sensor 1011 and the second sensor 1012 is stored in buffer 31 of image processing unit 30.
When scanning is completed, image data is extracted from buffer 31. After the scanning speed of image input unit 20 is determined by speed detection unit 32, the distortion in the image data is corrected by image correction unit 33 based on the scanning speed. In other words, in speed detection unit 32, the first attribute extraction unit 321 extracts the attributes of the image data generated by the first sensor 101 at a certain point in time; the attribute data is then stored in attribute buffer 323; and then the attributes of the image data from the second sensor 102 extracted by the second attribute extraction unit 322 is compared with the attribute data in the above-mentioned attribute buffer 323 by attribute comparison unit 324, in order to determine whether there is a match. If the two pieces of image data match each other, that means the second sensor 1012 has reached the read-out position of the first sensor 1011. Speed determination unit 325 then determines the scanning speed based on the elapsed time. Based on this scanning speed, the distortion in the image data is corrected by image correction unit 33.
By adopting such a method, the image distortion caused by changes in scanner speed is corrected, and distortion-free image can be obtained. Furthermore, this method provides various advantages over roller-type scanners. For example, the absence of an encoder unit makes the scanner smaller; the scanner tip need not contact the material to be read, resulting in improved operability; and the absence of a moving area such as a roller results in increased durability.
However, as explained above, a conventional dual line sensor image input device requires a distortion correction process that is based on speed detection. In order to perform this process, an extremely large buffer (buffer 31 in FIG. 16, for example) is usually installed in the image processing area, and speed detection and image correction are performed after all of the image data has been sent into this buffer.
Prior art FIG. 17 illustrates a timing diagram that shows the image data input processing operation of a manual image input device using the above-described conventional dual line sensor. FIG. 17 shows the image input operation performed by image input unit 20; shows the data transfer operation from image input unit 20 to image processing unit 30; and shows the image correction operation (distortion correction, including speed detection) performed by image processing unit 30.
As evident from this figure, in the conventional dual line sensor image input device, an image is input by image input unit 20 and the image data is then transferred to image processing unit 30 which performs image correction operations such as speed detection and distortion correction. Consequently, an extremely long period of time (t.sub.1 : image input processing completion time) is required between the start of image data reading by image input unit 20 and the completion of image correction by image processing unit 30. Furthermore, the difference .DELTA.t.sub.1 : wait time) between this image input processing completion time (t.sub.1) and the image input time of image input unit 20, becomes proportionally longer as the image input time of image input unit 20 increases. This results in extremely poor image input efficiency, especially when high-speed computers are used for image processing tasks.
Additionally, in the conventional method, buffer 31 which stores the image data sent from image input unit 20 must be extremely large since it must store all of the image data. Furthermore, because the amount of image data that can be stored in the buffer is finite, it is not possible to fully utilize the processing capability of the personal computer to which the image input device is connected. That is, once the image processing buffer 31 is filled, transfer of image data from the input unit 20 stops. Image correction is then performed on all of the image data present in the image processing buffer 31. When processing is complete, the image processing buffer 31 is flushed so more image data can be processed and scanning operations resume. Consequently, the sequentially-performed large buffer fill, full buffer image processing, buffer flush and buffer refill steps constitute an inflexible data bottleneck, which makes it difficult to optimize throughput and task handling for differently-configured computer serving as host for image processing tasks.
A similar problem occurs in scanners in which a character recognition area is connected to the above-mentioned image input unit 20 and image processing unit 30.
Prior art FIG. 18 shows a simplified configuration of such a conventional scanner, where 20 refers to the image input unit, and 30 relates to the image processing unit. Their explanations are omitted since they are identical to those shown in prior art FIG. 16. In this FIG. 40 refers to the buffer which stores image data on which image correction processing, such as distortion correction, has been performed by image processing unit 30; and 50 is the character recognition unit which extracts the processed image data stored in the buffer, performs character recognition, and then outputs character codes that correspond to those characters. Although not shown in the figure, character recognition unit 50 is equipped with a character extraction unit and a character generation unit.
In this type of configuration of the conventional image input device, an image is input by image input unit 20, and the image data is then transferred to image processing unit 30, which performs image correction operations such as speed detection and distortion correction. Using this corrected image data, character recognition unit 50 performs character recognition. In this way, the next processing takes place only after the prior process has been completed. Consequently, an extremely long period of time (information input processing completion time) is required between the start of image data reading by image input unit 20 and the completion of character recognition by character recognition unit 50. Furthermore, the difference (wait time) between this information input processing completion time and the image input time of image input unit 20 becomes proportionally longer as the image input time of image input unit 20 increases, resulting in extremely poor information input efficiency.
Additionally, in such a method, buffer 40 shown in prior art FIG. 18 must be extremely large since it must store all of the corrected image data downloaded during a particular scan event.
By contrast, other methods are available, such as that shown in prior art FIG. 19, in which all of the processing is performed on an as-needed basis . As evident from the figure, this method performs processing in the following polled time series approach. First, any data to be transferred is transferred to image processing unit 20 (steps s11 and s12). Next, any image data waiting to be corrected is corrected (steps s13 and s14). Finally, any data ready to be character-recognized is character-recognized (steps s15 and s16).
However, in this technique, image data transfer, image correction, and character recognition must all be completed before the next image data transfer request can be serviced . Thus, if the processing speed of the personal computer is slow, the next image data transfer request might be received while image correction is still taking place. In this case, image processing unit 20 will miss the timing for image data input. To prevent such a problem, it is necessary to design all image processing routines to match the slowest supported personal computer. However, doing so will result in much wasted wait time for high-speed personal computers, lowering processing efficiency, and preventing optimal utilization of the full processing capability of the personal computer.
It is, therefore, an object of the present invention to provide an information input device and information input method that efficiently process image data that has been read by optimally utilizing the processing capability of the personal computer used.